package com.ruoyi.pcj.domain;

import java.util.List;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import com.mashuai.utils.toolkit.core.msCrudbean.annotation.MsCrudBean;
import com.mashuai.utils.toolkit.core.msHandlebean.annotation.MsJoinTable;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.pcj.constant.TbConstant;
import lombok.Data;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 聊天室-基本信息对象 pcj_chat_group
 *
 * @author ms
 * @date 2024-02-29
 */
@Data
@TableName("pcj_chat_group")
@MsCrudBean(targetParam = "pcjChatGroup",entityClazz = PcjChatGroup.class)
public class PcjChatGroup extends BaseEntity {
    private static final long serialVersionUID = 1L;


    /**
     *
     */

    @TableId
    @TableField("id")
    private String id;


    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    @TableField("del_flag")
    private Integer delFlag;


    /**
     * 房主id
     */
    @MsJoinTable(joinTable = TbConstant.sysUser,joinField = "user_id", needFields = "nick_name@userName")
    @TableField("user_id")
    private Long userId;
    /**
     * 房主名称
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 聊天室名称
     */
    @TableField("name")
    private String name;


    /**
     * 聊天室图标
     */
    @TableField("icon")
    private String icon;


    /**
     * 0-停用，1-启用
     */
    @TableField("status")
    private String status;


    /**
     * 房间在线人数，用户进入房间+1
     */
    @TableField("user_num")
    private Integer userNum;


    /**
     * 房间总人数-计算pcj_chat_group_user人数
     */
    @TableField("onlie_num")
    private Integer onlieNum;


    /**
     * 房间创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField("begin_time")
    private Date beginTime;


    /**
     * 房间结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField("end_time")
    private Date endTime;
    /**
     * 房间类型
     */
    @TableField("group_type")
    private String groupType;


    /**
     * 聊天室-人员信息
     */
    @TableField(exist = false)
    private List<PcjChatGroupUser> pcjChatGroupUserList;

}
